module("framework.luamono.LuaCompBase",package.seeall)

--[[
1.在init中做控件初始化，
2.事件监听统一放到onStart中
3.事件移除统一放到onDestroy中
4.其他的mono函数的话，如果要用，自行在类中定义就好了，有定义，上层才会调用.
lua 与 c#组件函数对应关系：
    onEnable -> OnEnable
    onDisable -> OnDisable
    onStart -> Start
    onUpdate -> Update
    onDestroy --> OnDestroy
    onTriggerEnter --> OnTriggerEnter
    onTriggerExit --> OnTriggerExit
后续有需求再添加
]]

---@class LuaCompBase : UserDataDispose
local LuaCompBase = class("LuaCompBase", UserDataDispose)

function LuaCompBase:ctor()

end

--需要重写
--在这里初始化一些控件等
---@param go UnityEngine.GameObject 游戏物体GameObject对象
function LuaCompBase:init(go)
    self.go = go
end

--需要重写
--在此方法内部注册事件
--在onStart后面执行
function LuaCompBase:addEventListeners()

end

--需要重写
--在此方法内部移除事件注册
function LuaCompBase:removeEventListeners()

end

--需要重写
function LuaCompBase:onStart()
end

--需要重写
function LuaCompBase:onDestroy()
end

return LuaCompBase
